home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 August: Tool Chest / Dev.CD Aug 00 TC Disk 1.toast / pc / sample code / games / isp sample / source / cmodaldialog.cp < prev    next >
Encoding:
Text File  |  2000-06-23  |  4.3 KB  |  207 lines

  1. /*
  2.     File:        CModalDialog.cp
  3.  
  4.     Contains:    xxx put contents here xxx
  5.  
  6.     Version:    xxx put version here xxx
  7.  
  8.     Copyright:    © 1999 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     File Ownership:
  11.  
  12.         DRI:                xxx put dri here xxx
  13.  
  14.         Other Contact:        xxx put other contact here xxx
  15.  
  16.         Technology:            xxx put technology here xxx
  17.  
  18.     Writers:
  19.  
  20.         (BWS)    Brent Schorsch
  21.  
  22.     Change History (most recent first):
  23.  
  24.        <SP1>      7/1/99    BWS        first checked in
  25. */
  26.  
  27. //•    ——————————————————————————————    Includes
  28.  
  29. #include <ControlDefinitions.h>
  30. #include <Controls.h>
  31. #include <Dialogs.h>
  32. #include <MacWindows.h>
  33.  
  34. #include "MemoryHandler.h"
  35. #include "CModalDialog.h"
  36.  
  37. //•    ——————————————————————————————    Private Definitions
  38. //•    ——————————————————————————————    Private Types
  39. //•    ——————————————————————————————    Private Variables
  40. //•    ——————————————————————————————    Private Functions
  41. //•    ——————————————————————————————    Public Variables
  42.  
  43. //•    ————————————————————    CModalDialog
  44.  
  45. CModalDialog::CModalDialog(const short inDialogID)
  46. {
  47.     dialog = ::GetNewDialog(inDialogID, nil, (WindowPtr) -1L);
  48.     
  49.     numBaseItems = ::CountDITL(dialog);
  50. }
  51.  
  52. //•    ————————————————————    ~CModalDialog
  53.  
  54. CModalDialog::~CModalDialog()
  55. {
  56.     ::DisposeDialogZ(&dialog);
  57. }
  58.  
  59. #pragma mark -
  60.  
  61. //•    ————————————————————    CModalDialog::Show
  62.  
  63. void
  64. CModalDialog::Show(void)
  65. {
  66.     ::ShowWindow(dialog);
  67. }
  68.  
  69. //•    ————————————————————    CModalDialog::Hide
  70.  
  71. void
  72. CModalDialog::Hide(void)
  73. {
  74.     ::HideWindow(dialog);
  75. }
  76.  
  77. //•    ————————————————————    CModalDialog::MakeCurrentPort
  78.  
  79. void
  80. CModalDialog::MakeCurrentPort(void)
  81. {
  82.     ::SetPort(dialog);
  83. }
  84.  
  85. //•    ————————————————————    CModalDialog::SetDefaultItem
  86.  
  87. void
  88. CModalDialog::SetDefaultItem(const short inWhichItem)
  89. {
  90.     ::SetDialogDefaultItem(dialog, inWhichItem);
  91. }
  92.  
  93. //•    ————————————————————    CModalDialog::SetCancelItem
  94.  
  95. void
  96. CModalDialog::SetCancelItem(const short inWhichItem)
  97. {
  98.     ::SetDialogCancelItem(dialog, inWhichItem);
  99. }
  100.  
  101. #pragma mark -
  102.  
  103. //•    ————————————————————    CModalDialog::GetItemValue
  104.  
  105. short
  106. CModalDialog::GetItemValue(const short inWhichCheckBox)
  107. {
  108. ControlHandle    theControl;
  109.  
  110.     ::GetDialogItemAsControl(dialog, inWhichCheckBox, &theControl);
  111.     
  112.     return (::GetControlValue(theControl));
  113. }
  114.  
  115. //•    ————————————————————    CModalDialog::GetEditText
  116.  
  117. void
  118. CModalDialog::GetEditText(const short inWhichItem, Str255 outText)
  119. {
  120. ControlHandle    theControl;
  121. Size            realSize;
  122.  
  123.     ::GetDialogItemAsControl(dialog, inWhichItem, &theControl);
  124.     ::GetControlData(theControl, kControlEditTextPart, kControlEditTextTextTag, 255, (Ptr) &outText[1], &realSize);
  125.  
  126.     outText[0] = realSize;
  127. }
  128.  
  129. //•    ————————————————————    CModalDialog::GetStaticText
  130.  
  131. void
  132. CModalDialog::GetStaticText(const short inWhichItem, Str255 outText)
  133. {
  134. ControlHandle    theControl;
  135.  
  136.     ::GetDialogItemAsControl(dialog, inWhichItem, &theControl);
  137.     ::GetDialogItemText((Handle) theControl, outText);
  138. }
  139.  
  140. //•    ————————————————————    CModalDialog::GetItemMenuHandle
  141.  
  142. MenuHandle
  143. CModalDialog::GetItemMenuHandle(const short inWhichItem)
  144. {
  145. ControlHandle    theControl;
  146.  
  147.     ::GetDialogItemAsControl(dialog, inWhichItem, &theControl);
  148.     
  149.     return ((MenuHandle) theControl);
  150. }
  151.  
  152. #pragma mark -
  153.  
  154. //•    ————————————————————    CModalDialog::SetItemValue
  155.  
  156. void
  157. CModalDialog::GetItemValue(const short inWhichCheckBox, const short inValue)
  158. {
  159. ControlHandle    theControl;
  160.  
  161.     ::GetDialogItemAsControl(dialog, inWhichCheckBox, &theControl);
  162.     ::SetControlValue(theControl, inValue);
  163. }
  164.  
  165. //•    ————————————————————    CModalDialog::SetEditText
  166.  
  167. void
  168. CModalDialog::SetEditText(const short inWhichItem, Str255 inText)
  169. {
  170. ControlHandle    theControl;
  171.  
  172.     ::GetDialogItemAsControl(dialog, inWhichItem, &theControl);
  173.     ::SetControlData(theControl, kControlEditTextPart, kControlEditTextTextTag, inText[0], (Ptr) &inText[1]);
  174. }
  175.  
  176. //•    ————————————————————    CModalDialog::SetStaticText
  177.  
  178. void
  179. CModalDialog::SetStaticText(const short inWhichItem, Str255 inText)
  180. {
  181. ControlHandle    theControl;
  182.  
  183.     ::GetDialogItemAsControl(dialog, inWhichItem, &theControl);
  184.     ::SetDialogItemText((Handle) theControl, inText);
  185. }
  186.  
  187. //•    ————————————————————    CModalDialog::SelectEditText
  188.  
  189. void
  190. CModalDialog::SelectEditText(const short inWhichItem, const short inStart, const short inEnd)
  191. {
  192. ControlHandle                theControl;
  193. ControlEditTextSelectionRec    selection;
  194.  
  195.     selection.selStart = inStart;
  196.     selection.selEnd = inEnd;
  197.  
  198.     ::GetDialogItemAsControl(dialog, inWhichItem, &theControl);
  199.  
  200.     ::SetControlData(
  201.             theControl,
  202.             kControlEditTextPart,
  203.             kControlEditTextSelectionTag,
  204.             sizeof (ControlEditTextSelectionRec),
  205.             (Ptr) &selection);
  206. }
  207.